Lord of SQL Injection OS - 23번 hell_fire LoS 23번 Python 자동화 코드이다. admin 계정의 email은 [email protected] 임을 확인할 수 있다. @ 뒷부분을 보면... emai1 이다. 깨알같은 함정?... Lord of SQL InjectionLord of SQL Injection OS - 12번 darkknight 필터링 사항은 다음과 같다. ① 싱글쿼터 ② substr ③ ascii ④ = substr/ascii 필터링 우회 방법은 다음과 같다. ① substr ⇒ ord ② ascii ⇒ mid 또한, 이전 문제와 마찬가지로 admin의 pw를 알아야 풀 수 있는 Blind SQLi 문제이다. 기존에 사용했던 자동화 코드에 새로운 필터링 사항을 적용해주면 될 것 같다. 다만, 이전과는 달리 파라미터... Lord of SQL InjectionLord of SQL Injection OS - 21번 iron_golem solve 조건은 admin 계정의 pw를 알아내는 것이다. preg_match를 살펴보면 sleep과 benchmark를 필터링하고 있다. 두 함수 모두 Time Based Blind SQLi에 쓰이는 함수다. .과 _등을 함께 필터링하므로 헤비쿼리도 사용이 불가능하다. Timed Based로 접근하기 위한 방법이 모두 막혔으므로, 다른 방식으로 푸는 문제임을 유추할 수 있다. 헤비쿼리 :... Lord of SQL InjectionLord of SQL Injection OS - 31번 zombie 필터링을 제외하면 이전 문제와 완전히 동일하다. 다만, 문자열 ace를 필터링하여 replace를 사용하지 못하게 막고 있기 때문에 Quine을 구현할 수 있는 다른 방법이 필요하다. 이와 관련해서 MySql Quine에 대해서 찾아본 결과, MySql에서만 사용할 수 있는 또 다른 구현 방법이 있음을 알게 되었다. 바로 information_schema.processlist 테이블의 inf... Lord of SQL InjectionLord of SQL Injection OS - 29번 phantom no=1 레코드의 email을 찾는 문제이다. 먼저, 준비된 쿼리문을 보겠다. 쿼리문으로부터 추측할 수 있는 바는 다음과 같다. 첫 컬럼의 데이터로 0이 들어가는 것으로 보아, no는 AUTO_INCREMENT PRIMARY KEY로 추정할 수 있다. 접속한 ip와 joinmail을 매칭하여 저장함을 알 수 있다. 다음은 표가 출력되는 과정을 보겠다. no=1이거나, ip=[접속한 ip] 인... Lord of SQL InjectionLord of SQL Injection OS - 28번 frankenstein LoS 28번 Python 자동화 코드이다. 그런데 여기서 끝이 아니었다. 자동화 공격 결과 분명 답은 숫자와 알파벳 대문자의 조합으로 나왔건만... 아무리 넣어봐도 안 풀렸다. 도저히 이유를 모르겠어서 다른 블로그 글을 찾아봤더니 답은 0dc4efbb 였다. 왜 아스키로 검색했는데 대소문자가 반대로 나오는지...... Lord of SQL InjectionLord of SQL Injection OS - 19번 xavis 오랜만에 만나는 Blind SQLi 문제다. 정작 =는 필터링 하고 있지 않기 때문에 유의미한 제약이 있어보이진 않는다. 겉으로 보기에는 그냥 기본적인 Blind 문제 같지만... 한글은 유니코드 문자셋을 통해 표현되기 때문에 당연한 말이지만 아스키 번호를 백날 돌아봐야 찾을 수가 없다. 한글로 된 데이터를 탐색하는 방법에는 여러가지가 있을 수 있겠지만 새로운 챌린지가 생긴 김에 그냥 내 식... Lord of SQL InjectionLord of SQL Injection OS - 7번 orge 천천히 살펴보면, 4번 문제와 6번 문제를 합쳐놓았다는 것을 알 수 있다. 4번 Blind SQLi + 6번 or/and 필터링 4번 문제를 풀 때 썼던 Blind SQLi 자동화 코드에 6번 문제를 풀 때 썼던 or/and 필터링 우회 방법을 적용시켜주면 될 것 같다. 따라서 자동화 코드의 파라미터 부분을 다음과 같이 수정해준다. or ⇒ || and ⇒ %26%26 Blind 공격 결과,... Lord of SQL InjectionLord of SQL Injection OS - 1번 gremlin preg_match() 란? preg_match() 함수에 인자로 들어오는 정규식 표현을 토대로 검색 대상 문자열을 싹 다 훑어서 해당 정규식 표현과 일치하는 패턴을 찾아낸다는 말이다. preg_match() 는 세가지 인자를 받는다. 검색 대상 문자열 매칭된 값을 배열로 저장하고 싶을 시, 배열의 변수 $pattern 부분에 정규식 표현을 작성하고, $subject 부분에 검색 대상 문자열... Lord of SQL InjectionLord of SQL Injection Lord of SQL Injection Cobolt Writeup 오늘은 Lord of SQL Injection의 문제인 Cobolt를 풀어보도록 하겠습니다. 일단 문제에 접속해주면 아래와 같은 소스코드를 확인할 수 있습니다. 해당 소스코드를 분석하면 우리가 어떻게 SQL Injection을 수행해야 하고 필터링 처리를 피해서 어떻게 Exploit을 성공시킬지를 알 수 있습니다. 소스코드를 분석해본 결과 if문의 preg_match함수에서 '(싱글쿼터)와 ... webhackingCTFsLord of SQL InjectionCTFs
OS - 23번 hell_fire LoS 23번 Python 자동화 코드이다. admin 계정의 email은 [email protected] 임을 확인할 수 있다. @ 뒷부분을 보면... emai1 이다. 깨알같은 함정?... Lord of SQL InjectionLord of SQL Injection OS - 12번 darkknight 필터링 사항은 다음과 같다. ① 싱글쿼터 ② substr ③ ascii ④ = substr/ascii 필터링 우회 방법은 다음과 같다. ① substr ⇒ ord ② ascii ⇒ mid 또한, 이전 문제와 마찬가지로 admin의 pw를 알아야 풀 수 있는 Blind SQLi 문제이다. 기존에 사용했던 자동화 코드에 새로운 필터링 사항을 적용해주면 될 것 같다. 다만, 이전과는 달리 파라미터... Lord of SQL InjectionLord of SQL Injection OS - 21번 iron_golem solve 조건은 admin 계정의 pw를 알아내는 것이다. preg_match를 살펴보면 sleep과 benchmark를 필터링하고 있다. 두 함수 모두 Time Based Blind SQLi에 쓰이는 함수다. .과 _등을 함께 필터링하므로 헤비쿼리도 사용이 불가능하다. Timed Based로 접근하기 위한 방법이 모두 막혔으므로, 다른 방식으로 푸는 문제임을 유추할 수 있다. 헤비쿼리 :... Lord of SQL InjectionLord of SQL Injection OS - 31번 zombie 필터링을 제외하면 이전 문제와 완전히 동일하다. 다만, 문자열 ace를 필터링하여 replace를 사용하지 못하게 막고 있기 때문에 Quine을 구현할 수 있는 다른 방법이 필요하다. 이와 관련해서 MySql Quine에 대해서 찾아본 결과, MySql에서만 사용할 수 있는 또 다른 구현 방법이 있음을 알게 되었다. 바로 information_schema.processlist 테이블의 inf... Lord of SQL InjectionLord of SQL Injection OS - 29번 phantom no=1 레코드의 email을 찾는 문제이다. 먼저, 준비된 쿼리문을 보겠다. 쿼리문으로부터 추측할 수 있는 바는 다음과 같다. 첫 컬럼의 데이터로 0이 들어가는 것으로 보아, no는 AUTO_INCREMENT PRIMARY KEY로 추정할 수 있다. 접속한 ip와 joinmail을 매칭하여 저장함을 알 수 있다. 다음은 표가 출력되는 과정을 보겠다. no=1이거나, ip=[접속한 ip] 인... Lord of SQL InjectionLord of SQL Injection OS - 28번 frankenstein LoS 28번 Python 자동화 코드이다. 그런데 여기서 끝이 아니었다. 자동화 공격 결과 분명 답은 숫자와 알파벳 대문자의 조합으로 나왔건만... 아무리 넣어봐도 안 풀렸다. 도저히 이유를 모르겠어서 다른 블로그 글을 찾아봤더니 답은 0dc4efbb 였다. 왜 아스키로 검색했는데 대소문자가 반대로 나오는지...... Lord of SQL InjectionLord of SQL Injection OS - 19번 xavis 오랜만에 만나는 Blind SQLi 문제다. 정작 =는 필터링 하고 있지 않기 때문에 유의미한 제약이 있어보이진 않는다. 겉으로 보기에는 그냥 기본적인 Blind 문제 같지만... 한글은 유니코드 문자셋을 통해 표현되기 때문에 당연한 말이지만 아스키 번호를 백날 돌아봐야 찾을 수가 없다. 한글로 된 데이터를 탐색하는 방법에는 여러가지가 있을 수 있겠지만 새로운 챌린지가 생긴 김에 그냥 내 식... Lord of SQL InjectionLord of SQL Injection OS - 7번 orge 천천히 살펴보면, 4번 문제와 6번 문제를 합쳐놓았다는 것을 알 수 있다. 4번 Blind SQLi + 6번 or/and 필터링 4번 문제를 풀 때 썼던 Blind SQLi 자동화 코드에 6번 문제를 풀 때 썼던 or/and 필터링 우회 방법을 적용시켜주면 될 것 같다. 따라서 자동화 코드의 파라미터 부분을 다음과 같이 수정해준다. or ⇒ || and ⇒ %26%26 Blind 공격 결과,... Lord of SQL InjectionLord of SQL Injection OS - 1번 gremlin preg_match() 란? preg_match() 함수에 인자로 들어오는 정규식 표현을 토대로 검색 대상 문자열을 싹 다 훑어서 해당 정규식 표현과 일치하는 패턴을 찾아낸다는 말이다. preg_match() 는 세가지 인자를 받는다. 검색 대상 문자열 매칭된 값을 배열로 저장하고 싶을 시, 배열의 변수 $pattern 부분에 정규식 표현을 작성하고, $subject 부분에 검색 대상 문자열... Lord of SQL InjectionLord of SQL Injection Lord of SQL Injection Cobolt Writeup 오늘은 Lord of SQL Injection의 문제인 Cobolt를 풀어보도록 하겠습니다. 일단 문제에 접속해주면 아래와 같은 소스코드를 확인할 수 있습니다. 해당 소스코드를 분석하면 우리가 어떻게 SQL Injection을 수행해야 하고 필터링 처리를 피해서 어떻게 Exploit을 성공시킬지를 알 수 있습니다. 소스코드를 분석해본 결과 if문의 preg_match함수에서 '(싱글쿼터)와 ... webhackingCTFsLord of SQL InjectionCTFs